package com.tinem.platform.module.pojo.vo.message;

import com.tinem.platform.module.pojo.enums.message.MqttMessageType;
import com.tinem.platform.module.pojo.enums.message.PushChannel;
import com.tinem.platform.module.pojo.enums.message.WebSocketMessageType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Map;

/**
 * @author fengzhihao
 * @version v1
 * @program: platform
 * @className PushReq
 * @description TODO
 * @site 
 * @company 
 * @create 2020-07-08 18:50
 */
@Data
@ApiModel("消息推送请求")
public class PushReq {
    @ApiModelProperty(name = "pushChannel", value = "消息推送渠道",required = true,allowableValues = "EMAIL,SMS,ALI_EMAIL,WEB_SOCKET")
    private PushChannel pushChannel;
    @ApiModelProperty(name = "from", value = "消息发送方",required = true)
    private String from;
    @ApiModelProperty(name = "to", value = "消息接受方",required = true)
    private String to;
    @ApiModelProperty(name = "params", value = "消息参数",required = true)
    private Map<String,String> params;
    @ApiModelProperty(name = "body", value = "消息内容",required = true)
    private Object body;

    @ApiModelProperty(name = "extWebSocketType", value = "websocket消息类型",required = false,allowableValues = "ALL_SESSION,ALL_USER,USER,CHAT_ROOM")
    private WebSocketMessageType extWebSocketType;

    @ApiModelProperty(name = "extMqttType", value = "mqtt消息类型",required = false,allowableValues = "ALL_USER,USER,GROUP")
    private MqttMessageType extMqttType;


    @ApiModelProperty(name = "extMailSubject", value = "邮件标题",required = false)
    private String extMailSubject;
    @ApiModelProperty(name = "extMailCc", value = "邮件抄送方",required = false)
    private String extMailCc;
    @ApiModelProperty(name = "extMailBcc", value = "邮件密送方",required = false)
    private String extMailBcc;
    @ApiModelProperty(name = "extMailOpenEventMonitor", value = "用户邮件开启监听",required = false)
    private Integer extMailOpenEventMonitor = 0;
    @ApiModelProperty(name = "extMailClickLinkEventMonitor", value = "用户邮件连接点击监听",required = false)
    private Integer extMailClickLinkEventMonitor = 0;
    @ApiModelProperty(name = "extMailImageLinkEventMonitor", value = "用户邮件图片查看监听",required = false)
    private Integer extMailImageLinkEventMonitor = 0;
}
